package cn.tedu.knows.search.model;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

@Data
@Accessors(chain = true)
@AllArgsConstructor//添加全参构造
@NoArgsConstructor//添加无参构造
//@Document是StringDataES的注解
//表示当前类是用于联系ES中索引的类,indexName指定的是索引名称
// 使用SpringData操作数据时,这个索引不存在会自动创建
@Document(indexName = "items")
public class Item implements Serializable {

    @Id
    private Long id;
    //Text表示当前字段是字符串类型,并且需要分词
    //所以要设置分词器,保存和搜索用分词器都是ik_smart
    @Field(type = FieldType.Text,analyzer = "ik_smart",
                    searchAnalyzer = "ik_smart")
    private String title;
    //Keyword类型指当前字段是字符串,但是不需要进行分词
    @Field(type = FieldType.Keyword)
    private String category;//分类
    @Field(type = FieldType.Keyword)
    private String brand;//品牌
    @Field(type = FieldType.Double)
    private Double price;
    //标记为index = false的字段不会生成索引,不能用于查询
    @Field(type = FieldType.Keyword,index = false)
    private String images;//图片地址

}
